#include <stdio.h> 
#include <stdlib.h>
#include <string.h>

/*
1 变量在内存中所占的字节数
所有的指针，不论类型，在内存中所占的字节数都是一样的
根据编译器位数而定，如果是32位gcc,则是4字节，如果是64位是8字节

4字节  0----FFFFFFFF
8字节  0----FFFFFFFFFFFFFFFF


2 指针本身的内存，以及指针指向的内存
指针本身的内存：4或8（指针变量只需要存储指向的变量的首地址）
指针指向的内存：看类型

*/

int main()
{
    int num=10;
    int* p_0=&num;
    printf("sizeof(num):%d\n",sizeof(num)); //4
    printf("sizeof(p_0):%d\n",sizeof(p_0)); //8

    printf("num=%d %p\n",num,&num);
    printf("*p_0=%d %p %p\n",*p_0,p_0,&p_0);


    double val=20.0;
    double* p_1=&val;
    printf("sizeof(val):%d\n",sizeof(val)); //8
    printf("sizeof(p_1):%d\n",sizeof(p_1)); //8

    printf("val=%1f %p\n",val,&val);
    printf("*p_1=%1f %p %p\n",*p_1,p_1,&p_1);


    char ch='a';
    char* p_2=&ch;
    printf("sizeof(ch):%d\n",sizeof(ch)); //1
    printf("sizeof(p_2):%d\n",sizeof(p_2)); //8

    printf("ch=%c %p\n",ch,&ch);
    printf("*p_2=%d %p %p\n",*p_2,p_2,&p_2);


	//system("pause");
	return 0;
} 